# -*- coding:utf-8  -*-
# @Author: ChenYangMing
# @Time: 2024-08-30

from datetime import datetime
import logging
import traceback

from Common.config_utils import Config


logging.basicConfig(filename=Config.ERROR_LOG_PATH, level=logging.ERROR,
                    format='%(asctime)s - %(levelname)s - %(message)s')


def log_error(
        error,
):
    """
    将错误记录到日志文件。
    :param error: str，错误信息。
    """
    logging.error(error)


def format_error_message(
        exception,
):
    """
    格式化错误信息为可读的字符串。
    :param exception: 异常对象，包含错误详情。
    :return: str, 格式化的错误信息，包含时间戳和堆栈跟踪。
    """
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    stack_trace = traceback.format_exc()
    return f"[{timestamp}] An error occurred: {str(exception)}\nStack Trace:\n{stack_trace}"


# 调用示例
# try:
#     # 业务逻辑代码，可能会抛出异常
#     pass
# except Exception as e:
#     error_message = format_error_message(e)
#     log_error(error_message)
#     # 可以在这里处理异常，例如返回错误响应或执行其他操作
#     raise  # 重新抛出异常，让上层调用者处理
